package com.sky.lightleafpicturepavilionserver.service;

import com.sky.lightleafpicturepavilionserver.domain.SystemConfig;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sky.lightleafpicturepavilionserver.dto.SystemConfigDTO;
import com.sky.lightleafpicturepavilionserver.dto.SystemConfigUpdateDTO;

import java.util.List;

/**
* @author Administrator
* @description 针对表【system_config(系统配置表)】的数据库操作Service
* @createDate 2025-09-30 20:16:58
*/
public interface SystemConfigService extends IService<SystemConfig> {

    /**
     * 获取所有系统配置
     * @return 系统配置列表
     */
    List<SystemConfigDTO> getAllConfigs();
    
    /**
     * 根据配置键获取配置值
     * @param configKey 配置键
     * @return 配置值
     */
    String getConfigValue(String configKey);
    
    /**
     * 根据配置键获取整型配置值
     * @param configKey 配置键
     * @param defaultValue 默认值
     * @return 配置值
     */
    Integer getIntConfigValue(String configKey, Integer defaultValue);
    
    /**
     * 根据配置键获取布尔型配置值
     * @param configKey 配置键
     * @param defaultValue 默认值
     * @return 配置值
     */
    Boolean getBooleanConfigValue(String configKey, Boolean defaultValue);
    
    /**
     * 更新系统配置
     * @param updateDTO 更新数据
     * @return 是否成功
     */
    Boolean updateConfig(SystemConfigUpdateDTO updateDTO);
    
    /**
     * 批量更新系统配置
     * @param updateList 更新数据列表
     * @return 是否成功
     */
    Boolean batchUpdateConfigs(List<SystemConfigUpdateDTO> updateList);
    
    /**
     * 初始化默认配置
     */
    void initDefaultConfigs();
}
